High Efficiency Video Coding (HEVC) is a new coding standard that has been developed in recent years. In the High Efficiency Video Coding (HEVC) system, the fixed-size macroblock of H.264/AVC is replaced by a flexible block, named coding unit (CU). Pixels in the CU share the same coding parameters to improve coding efficiency. A CU may begin with a largest CU (LCU), which is also referred as coded tree unit (CTU) in HEVC. In addition to the concept of coding unit, the concept of prediction unit (PU) is also introduced in HEVC. Once the splitting of CU hierarchical tree is done, each leaf CU is further split into one or more prediction units (PUs) according to prediction type and PU partition.
Along with the High Efficiency Video Coding (HEVC) standard development, the development of extensions of HEVC has also started. The HEVC extensions include range extensions (RExt) which target at non-4:2:0 color formats, such as 4:2:2 and 4:4:4, and higher bit-depths video such as 12, 14 and 16 bits per sample. A coding tool developed for RExt is inter-component prediction that improves coding efficiency particularly for multiple color components with high bit-depths. Inter-component prediction can exploit the redundancy among multiple color components and improves coding efficiency accordingly. A form of inter-component prediction being developed for RExt is Inter-component Residual Prediction (IRP) as disclosed by Pu et al. in JCTVC-N0266, (“Non-RCE1: Inter Color Component Residual Prediction”, in Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 14th Meeting: Vienna, AT, 25 Jul.-2 Aug. 2013 Document: JCTVC-N0266).
In Inter-component Residual Prediction, the chroma residual is predicted at the encoder side as:rC′(x,y)=rC(x,y)−(α×rL(x,y))>>3  (1)
In equation (1), rC(x, y) denotes the final chroma reconstructed residual sample at position (x, y), rc′(x,y) denotes the reconstructed chroma residual sample from the bit-stream at position (x, y), rL(x, y) denotes the reconstructed residual sample in the luma component at position (x,y) and α is a scaling parameter (also called alpha parameter, or scaling factor). Scaling parameter α is calculated at the encoder side and signaled. At the decoder side, the final chroma reconstructed residual sample is derived according to:rC(x,y)=rC′(x,y)+(α×rL(x,y))>>3  (2)
While the YUV format is used as an example to illustrate inter-component residual prediction derivation, any other color format may be used. For example, RGB format may be used. If R component is encoded first, R component is treated the same way as the luma component in the above example. Similarly, if G component is encoded first, the G component is treated the same way as the luma component.
An exemplary decoding process the IRP in the current HEVC-REXT is illustrated in FIG. 1 for transform units (TUs) of the current unit (CU). The decoded coefficients of all TUs of a current CU are provided to processors for respective components. For the first component (e.g., Y component), the decoded transform coefficients are inverse transformed (block 110) to recover the Intra/Inter coded residual of the first color component. The Inter/Intra coded first color component is then processed by First Component Inter/Intra Compensation 120 to produce the final reconstructed first component. The needed Inter/Intra reference samples for First Component Inter/Intra Compensation 120 are provided from buffers or memories. In FIG. 1, it implies that the first color component is Inter/Intra coded so that the Inter/Intra compensation is used to reconstruct the first component from the reconstructed residual. However, other coding process (e.g., inter-view prediction) may also be included to generate first component residual. For the second color component, the decoded transform coefficients are decoded using second component decoding process (block 112) to recover inter-component coded second component. Since the second component is inter-component residual predicted based on the first component residual, Inter-component Prediction for second Component (block 122) is used to reconstruct the second component residual based on outputs from block 110 and block 112. As mentioned before, the inter-component residual prediction needs the scaling parameter coded. Therefore, decoded alpha parameter between the first color component and the second color component is provided to block 122. The output from block 122 corresponds to Inter/Intra prediction residual of the second component. Therefore, second Component Inter/Intra Compensation (block 132) is used to reconstruct the final second component. Similar to the first color component, other coding process (e.g., inter-view prediction) may also be included in the coding/prediction process to generate the second color residual. For the third component, similar processing can be used (i.e., blocks 114, 124 and 134) to reconstruct the final third component. According to the decoding process, the encoding process can be easily derived.
The coding process for inter-component residual prediction may be applied to video in YUV format which contains 1 luma and 2 chroma components at the ratio of 4:4:4 for example. The coding process for inter-component residual prediction may also be applied to video with R, G, and B components or other formats. The first encoded component can be treated as the luma component and the other two components can be treated as two chroma components. For RGB format, any color can be selected as the first color.
As shown in equations (1) and (2), derivation of predicted residual for the second or third color component relies on the first component (or the luma component) residual and an alpha parameter. The alpha parameter is transmitted in the transform unit of the video stream. The luma residual is multiplied by the alpha parameter and right shifted by 3 bits as shown in equations (1) and (2). The scaled residual is utilized as the predicted residual for the current component transform block (TB) residuals. According to the existing RExt draft standard, an alpha value is selected are among −8, −4, −2, −1, 0, 1, 2, 4 and 8.
Furthermore, the alpha parameter is transmitted in the bitstream by converting the absolute value of the alpha parameter into a binary representation as shown in Table 1. In the binarization of absolute alpha value, Table 1 shows the binary codes from shortest to longest code corresponding to the smallest absolute value to the largest absolution value. The bits of the absolute alpha value along with a sign flag indicating a positive or negative value are coded using context based entropy coding. According to the existing RExt draft standard, the first three bins of the binary codes are used to form three independent context models. In other words, absolute alpha values 8 and 4 share a common context model. Furthermore, a smaller absolute alpha value is assigned a shorted binary code according to Table 1.
TABLE 1abs(alpha)Binary codes0011021104111081111
It is desirable to develop methods for further improving the coding efficiency and/or reducing the complexity associated with the coding process for the alpha parameter.